package com.g4m.baselib.entity;

import com.alibaba.fastjson.annotation.JSONField;
import lombok.Data;
import org.apache.commons.lang3.StringUtils;

/**
 * Created on 2020-01-01
 * <p>Copyright 2008-2020 snsndk.com</p>
 *
 *
 */
@Data
public class SnsNdkPublic {

    public final static String OS_IOS = "ios";
    public final static String OS_ANDROID = "android";
    public final static String HEADER_USER_AGENT = "user-agent";
    public final static String HEADER_USER_AGENT_ANDROID = "adr";
    public final static String HEADER_USER_AGENT_IPAD = "ipad";
    public final static String HEADER_USER_AGENT_IPOD = "ipod";
    public final static String HEADER_USER_AGENT_IPHONE = "iphone";
    public final static String OS_PC = "pc";
    public final static String DM_H5 = "H5";
    public final static String DM_PC = "pc";
    /**
     * 设备唯一标识
     */
    private String did;

    /**
     * 用户设置的设备名称,android部分不能设置
     */
    private String dname;

    /**
     * 客户端系统当前语言(system language)
     */
    private String sl;

    /**
     * 客户端系统版本(system version)
     */
    private String sv;

    /**
     * 设备系统类型(ios/android)
     */
    private String os;

    /**
     * APP当前版本号(application version)
     */
    private String av;

    /**
     * APPbuild版本号，按Build时间方式生成(build version)
     */
    private String bv;

    /**
     * 客户端设备型号(device model)
     */
    private String dm;

    /**
     * 客户端网卡MAC地址(device mac id)
     */
    private String dmid;

    /**
     * 客户端广告跟踪ID(device advertisement id)
     */
    private String daid;

    /**
     * 0没有网络,1其他,2 2G,3 3G,4 4G,5 wifi,6 蜂窝网络
     */
    private int network;

    /**
     * 客户端屏幕宽(device width)
     */
    private int dw;

    /**
     * 客户端屏幕高(device height)
     */
    private int dh;

    /**
     * 客户端发请求时所在位置经度
     */
    private double lon;

    /**
     * 客户端发请求时所在位置纬度
     */
    private double lag;

    /**
     * 客户端安装渠道(install channel)
     */
    private String channel;

    /**
     * android的imei号
     */
    private String imei;

    /**
     * 项目分配的固定值
     */
    private String sdkid;

    /**
     * 请求来源的父级页面
     */
    private String fpp;
    /**
     * 请求来源的页面
     */
    private String fp;

    /**
     * 用户系统成功后授权的访问token(AccessToken)
     */
    @JSONField(serialize = false)
    private String ak;

    /**
     * 当前登陆用户Id
     */
    public long userId;

    /**
     * 当前用户的Token是否有效
     */
    public boolean userTokenIsValid = true;


    /**
     * 安卓兼容换行
     *
     * @param channel 渠道名称
     */
    public void setChannel(String channel) {
        if (StringUtils.isNotBlank(channel)) {
            channel = channel.trim();
            channel = channel.replace("\n", "");
            channel = channel.replace("\t", "");
        }
        this.channel = channel;
    }

    public SnsNdkPublic() {

    }
}
